package cn.ronghuanet.permission.service.impl;

import cn.ronghuanet.basic.service.impl.BaseServiceImpl;
import cn.ronghuanet.permission.domain.Role;
import cn.ronghuanet.permission.dto.RolePermissionDTO;
import cn.ronghuanet.permission.mapper.RoleMapper;
import cn.ronghuanet.permission.service.IRoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
public class RoleServiceImpl extends BaseServiceImpl<Role> implements IRoleService {

    @Autowired
    private RoleMapper roleMapper;


    @Transactional
    @Override
    public void saveRolePermission(RolePermissionDTO dto) {
        // 当前角色有可能之前已经存在一些权限了,怎么办?
        // 1 先删除这个角色原来所有的权限
        roleMapper.deletePermissionByRoleId(dto.getRoleId());

        // 2 保存这个角色的权限
        // 一个角色会对应多个权限,每一个权限,都是一个关联关系
        // 方式一:循环List<String> permissionSns 每次循环都调用mapper做新增
        // 方式二:批量新增
        //roleMapper.batchSaveRolePermission(dto);
        roleMapper.batchSaveRolePermission(dto.getRoleId(),dto.getPermissionSns());
    }

    @Override
    public List<String> getRolePermissionSns(Long roleId) {
        return roleMapper.getRolePermissionSns(roleId);
    }
}
